এক্সেপশন কী এবং কেন দরকার

Computer Programming - সি++ প্রোগ্রামিং (C++ Programming) এক্সেপশন হ্যান্ডলিং |
279
279

এক্সেপশন (Exception) হলো প্রোগ্রামে ঘটে যাওয়া এমন একটি অবস্থা বা ঘটনা, যা স্বাভাবিক প্রবাহে বাঁধা সৃষ্টি করে। C++ এ এক্সেপশন ব্যবস্থাপনার জন্য বিশেষ প্রক্রিয়া রয়েছে, যা প্রোগ্রাম চলাকালে কোনো অনাকাঙ্ক্ষিত সমস্যা দেখা দিলে তাকে সনাক্ত করে, পরিচালনা করে এবং প্রয়োজনীয় পদক্ষেপ গ্রহণ করতে সক্ষম করে।

এক্সেপশনের প্রয়োজনীয়তা

ত্রুটি শনাক্তকরণ এবং ম্যানেজমেন্ট: প্রোগ্রামে বিভিন্ন ত্রুটি (যেমন, ডিভাইড বাই জিরো, মেমোরি অ্যাক্সেস সমস্যা) তৈরি হতে পারে। এক্সেপশন ব্যবস্থাপনা প্রোগ্রামকে সেসব ত্রুটি সনাক্ত এবং ম্যানেজ করতে সাহায্য করে।

প্রোগ্রামের স্থায়িত্ব বজায় রাখা: এক্সেপশন ব্যবস্থাপনা ব্যবহার করে প্রোগ্রামের ত্রুটিপূর্ণ অংশের জন্য সমাধান তৈরি করা যায় এবং প্রোগ্রামকে ত্রুটির পরে চলমান রাখা সম্ভব হয়, ফলে প্রোগ্রামের স্থায়িত্ব বাড়ে।

কোডের সরলতা বৃদ্ধি: এক্সেপশন ব্যবস্থাপনা ব্যবহার করে প্রোগ্রামারেরা ত্রুটি নির্ণয় এবং সমাধান নির্দিষ্ট স্থানে রাখতে পারে, যা কোডের পঠনযোগ্যতা এবং রক্ষণাবেক্ষণ সহজ করে।

অপ্রত্যাশিত পরিস্থিতি হ্যান্ডলিং: প্রোগ্রামে প্রায়ই কিছু অপ্রত্যাশিত অবস্থা তৈরি হতে পারে, যেমন ফাইল না খোলা, মেমোরি আউট অব রেঞ্জ ইত্যাদি। এক্সেপশন ব্যবস্থাপনা প্রোগ্রামকে অপ্রত্যাশিত পরিস্থিতির জন্য প্রস্তুত করে এবং সেই অনুযায়ী কাজ করতে সক্ষম করে।

C++ এ এক্সেপশন ব্যবস্থাপনা

C++ এ এক্সেপশন ব্যবস্থাপনার জন্য তিনটি মূল কীওয়ার্ড রয়েছে:

  • try: এক্সেপশন হ্যান্ডল করার জন্য কোডটি try ব্লকের মধ্যে রাখা হয়।
  • catch: catch ব্লক ব্যবহার করে নির্দিষ্ট এক্সেপশন ধরা হয় এবং প্রয়োজনীয় সমাধান নেওয়া হয়।
  • throw: এক্সেপশন ঘটার সময় throw ব্যবহার করে একটি এক্সেপশন ছোড়া হয়।

উদাহরণ: এক্সেপশন ব্যবস্থাপনা

#include <iostream>
using namespace std;

int main() {
    int numerator, denominator;
    cout << "Enter numerator: ";
    cin >> numerator;
    cout << "Enter denominator: ";
    cin >> denominator;

    try {
        if (denominator == 0) {
            throw "Division by zero error"; // এক্সেপশন ছোড়া হচ্ছে
        }
        cout << "Result: " << numerator / denominator << endl;
    } catch (const char* msg) {
        cout << "Error: " << msg << endl; // এক্সেপশন ধরা হচ্ছে
    }

    return 0;
}

বর্ণনা:

  • এখানে try ব্লকে denominator এর মান 0 হলে, throw দিয়ে "Division by zero error" নামে একটি এক্সেপশন ছোড়া হয়েছে।
  • catch ব্লক সেই এক্সেপশন ধরে এবং msg এর মাধ্যমে ত্রুটি বার্তা প্রদর্শন করেছে।

এক্সেপশন ব্যবস্থাপনায় আরও উদাহরণ

উদাহরণ: বিভিন্ন ধরনের এক্সেপশন হ্যান্ডলিং

#include <iostream>
#include <stdexcept> // standard exceptions জন্য
using namespace std;

int main() {
    try {
        int *arr = new int[5];
        throw runtime_error("Runtime error occurred!"); // Runtime exception ছোড়া

        delete[] arr; // যদি উপরের লাইন কার্যকর হয় না, তবে এটি চলবে না
    }
    catch (const runtime_error& e) {
        cout << "Caught a runtime_error: " << e.what() << endl;
    }
    catch (const exception& e) {
        cout << "Caught an exception: " << e.what() << endl;
    }

    return 0;
}

বর্ণনা:

  • এখানে একটি runtime_error এক্সেপশন ছোড়া হয়েছে এবং catch ব্লক ব্যবহার করে সেই ত্রুটি হ্যান্ডল করা হয়েছে।
  • e.what() ফাংশনটি ব্যবহার করে এক্সেপশনের বার্তা প্রদর্শন করা হয়েছে।

এক্সেপশনের ধরন

স্ট্যান্ডার্ড এক্সেপশন: C++ এ stdexcept লাইব্রেরি থেকে কিছু সাধারণ এক্সেপশন পাওয়া যায়, যেমন logic_error, runtime_error, overflow_error, underflow_error, ইত্যাদি।

কাস্টম এক্সেপশন: প্রোগ্রামারেরা নিজস্ব প্রয়োজন অনুযায়ী কাস্টম এক্সেপশন তৈরি করতে পারেন।

উদাহরণ: কাস্টম এক্সেপশন

#include <iostream>
#include <exception>
using namespace std;

class CustomException : public exception {
public:
    const char* what() const noexcept override {
        return "Custom exception occurred!";
    }
};

int main() {
    try {
        throw CustomException(); // কাস্টম এক্সেপশন ছোড়া হচ্ছে
    }
    catch (const CustomException& e) {
        cout << e.what() << endl;
    }

    return 0;
}

বর্ণনা:

  • এখানে CustomException নামে একটি কাস্টম এক্সেপশন ক্লাস তৈরি করা হয়েছে, যা exception ক্লাস থেকে ইনহেরিট করা।
  • throw CustomException(); ব্যবহার করে কাস্টম এক্সেপশন ছোড়া হয়েছে এবং catch ব্লক সেটিকে ধরে e.what() এর মাধ্যমে বার্তা প্রদর্শন করেছে।

এক্সেপশন ব্যবস্থাপনার সুবিধা

  1. ত্রুটি হ্যান্ডলিং প্রক্রিয়া সহজ করে: এক্সেপশন ব্যবস্থাপনা ব্যবহার করে প্রোগ্রামিংয়ে ত্রুটি হ্যান্ডলিং প্রক্রিয়াকে আরও সহজ এবং কার্যকর করা যায়।
  2. প্রোগ্রামের স্থায়িত্ব বৃদ্ধি করে: এক্সেপশন ব্যবস্থাপনা ত্রুটি ঘটার পরেও প্রোগ্রামকে চলমান রাখতে সহায়তা করে।
  3. কোড সংক্ষিপ্ত এবং পঠনযোগ্য করে: এক্সেপশন ব্যবস্থাপনার মাধ্যমে কোডের ত্রুটি হ্যান্ডলিং প্রক্রিয়া এক জায়গায় সংরক্ষণ করা সম্ভব হয়।

সারসংক্ষেপ

  • এক্সেপশন হলো কোনো প্রোগ্রাম চলাকালে ঘটিত ত্রুটি বা অপ্রত্যাশিত ঘটনা।
  • try-catch-finally ব্লক ব্যবহার করে এক্সেপশন হ্যান্ডল করা যায়।
  • এক্সেপশন ব্যবস্থাপনা ত্রুটি নির্ণয় ও হ্যান্ডলিং প্রক্রিয়াকে সহজতর ও কার্যকর করে তোলে এবং প্রোগ্রামিংয়ে প্রোগ্রামের স্থায়িত্ব বাড়ায়।

এক্সেপশন ব্যবস্থাপনা C++ প্রোগ্রামিংয়ে অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি প্রোগ্রামকে স্থায়ী এবং কার্যকর রাখতে সহায়ক।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion